/*
 ============================================================================
 Name        : Varios.c
 Author      : SOogle
 Version     : 1.0
 Copyright   : All rights reserved
 Description : FUSELAGE - FUSE FAT32 FILE SYSTEM
 ============================================================================
 */

#include "../../headers/GlobalHeader.h"

t_log *logger;
extern struct_config configuracion;
extern int32_t filesize;
extern int32_t algoritmoUtilizado, modoInicio;
extern PPD_CHS posicionActualCabezal;
extern char* handlerArchivoMapeado;

void inicializarEstructuras()
{
	//HAGO APUNTAR EL CABEZAL A LA POSICION (0,0,1)
	cargoPosicionInicialDisco();

	//CALCULO EL TAMAÑO DEL DISCO
	filesize = tamanioDisco();

	//MAPEO DISCO A MEMORIA
	handlerArchivoMapeado=ppd_abrirArchivo();

	//CREO EL ARCHIVO DE LOG
	logger = crearLog();

	//CARGO LAS VARIABLES MODO INICIO, PARA LOS SWITCH DE LISTEN O CONNECT Y SWITCH DE ALGORITMO CON INANICION Y SIN INANICION
	cargoModosInicio();

}

t_log *crearLog()
{
	if(configuracion.LogActivado==1)
	{
		logger = log_create("Runner", "ppd.log", DEBUG | INFO | WARNING, M_CONSOLE_DISABLE);
	}

	return logger;
}

void cargoPosicionInicialDisco()
{
	PPD_CHS sectorCargo;
	sectorCargo.cylinder = 0;
	sectorCargo.head = 0;
	sectorCargo.sector = 1;

	posicionActualCabezal = sectorCargo;
}

void cargoModosInicio()
{

	if(!(strcmp(configuracion.ModoInicio,"connect")))
	{
		modoInicio = CONNECT;
	}
	else
	{
		modoInicio = LISTEN;
	}

	if(!(strcmp(configuracion.AlgoritmoPlanificacion, "sstf")))
	{
		algoritmoUtilizado = CON_INANICION;
	}
	else
	{
		algoritmoUtilizado = SIN_INANICION;
	}
}
